#pragma once
#ifndef SYPX_RENDERER_GL
#define SYPX_RENDERER_GL

#include "Renderer.h"

namespace SypX
{
	///RendererGL2 is an implementation of the older OpenGL 2 API found on obsolete hardware/drivers like
	///intel integrated chipsets and backward Operating Systems like MacOSX
	class SYPXAPI RendererGL2 : public Renderer
	{
	public:
		RendererGL2(void);
		virtual ~RendererGL2(void);
		///Inits the Renderer. Usually does things like initialising Rendering API, setting viewport
		virtual void init(UInt width, UInt height);
		///Clears the screen
		virtual void clearScreen(bool color=true, bool depth=true);
		///Sets the clear screen color
		virtual void setClearScreenColor(const Vec4& color);
		///Draws a mesh 
		virtual void drawMesh(MeshInstance* mi);
		///Creates and allocates the texture on GPU. (Usually called by Texture class itself and not directly)
		virtual void createTexture(Texture* tex);
		///Deletes the texture from the GPU
		virtual void deleteTexture(Texture* tex);
	};

}
#endif